The technical field of the related art is in reverse engineering by recognizing and fitting multi-model multi-instance geometric primitives (e.g., planes, cylinders, spheres, cones, etc.). The most classic solution to this problem is RANSAC-based method, which in practice often lead to inferior fitting results, due to a combination of multiple factors including noisy points (and therefore noisy normal estimation) and cluttered scene formed by multiple class and/or multiple instance of geometric primitives, which are well-known to impede RANSAC-based method's robustness. Other methods base on Hough Transform or global energy minimization, suffers similarly from the above challenges.